package com.ruoyi.system.service;

import java.util.List;
import com.ruoyi.system.domain.DbIdentityManagement;
import com.ruoyi.system.domain.ScoreManagement;
import com.ruoyi.system.domain.DbQualificationManagement;
import com.ruoyi.system.domain.dto.StatisticsDTO;

/**
 * 四级联考递补身份验证Service接口
 * 
 * @author ruoyi
 * @date 2025-04-02
 */
public interface IDbIdentityManagementService 
{
    /**
     * 查询四级联考递补身份验证
     * 
     * @param id 四级联考递补身份验证主键
     * @return 四级联考递补身份验证
     */
    public DbIdentityManagement selectDbIdentityManagementById(Long id);

    /**
     * 查询四级联考递补身份验证列表
     * 
     * @param dbIdentityManagement 四级联考递补身份验证
     * @return 四级联考递补身份验证集合
     */
    public List<DbIdentityManagement> selectDbIdentityManagementList(DbIdentityManagement dbIdentityManagement);

    /**
     * 新增四级联考递补身份验证
     * 
     * @param dbIdentityManagement 四级联考递补身份验证
     * @return 结果
     */
    public int insertDbIdentityManagement(DbIdentityManagement dbIdentityManagement);

    /**
     * 修改四级联考递补身份验证
     * 
     * @param dbIdentityManagement 四级联考递补身份验证
     * @return 结果
     */
    public int updateDbIdentityManagement(DbIdentityManagement dbIdentityManagement);

    /**
     * 批量删除四级联考递补身份验证
     * 
     * @param ids 需要删除的四级联考递补身份验证主键集合
     * @return 结果
     */
    public int deleteDbIdentityManagementByIds(Long[] ids);

    /**
     * 删除四级联考递补身份验证信息
     * 
     * @param id 四级联考递补身份验证主键
     * @return 结果
     */
    public int deleteDbIdentityManagementById(Long id);

    /**
     * 导入四级联考递补身份验证数据
     * 
     * @param dbIdentityList 递补身份验证数据列表
     * @param updateSupport 是否更新支持，如果已存在，是否覆盖
     * @param operName 操作用户
     * @return 结果
     */
    public String importDbIdentityData(List<DbIdentityManagement> dbIdentityList, boolean updateSupport, String operName);

    /**
     * 从成绩合格名单生成并插入递补身份验证名单
     * 
     * @param scoreList 符合条件的成绩合格名单数据列表
     * @param operName 操作用户
     * @return 结果
     */
    public int insertDbIdentityListFromScore(List<ScoreManagement> scoreList, String operName);

    /**
     * 从递补资格审查名单生成并插入递补身份验证名单
     * 
     * @param dbQualificationList 符合条件的递补资格审查名单数据列表
     * @param operName 操作用户
     * @return 结果
     */
    public int insertDbIdentityListFromDbQualification(List<DbQualificationManagement> dbQualificationList, String operName);

    /**
     * 生成递补体能测评名单
     * 从递补身份验证名单中筛选出身份验证结果为"通过"的考生，生成递补体能测评名单
     * 
     * @param operName 操作用户
     * @return 生成的递补体能测评名单人数
     */
    public int generateDbPhysicalList(String operName);

    /**
     * 获取四级联考递补身份验证统计数据
     * 
     * @return 统计数据
     */
    public StatisticsDTO getDbIdentityStatistics();
}
